package com.dys.test07;

/**
 * @className: com.dys.test07.ExceptionClassification
 * @description: 异常分类
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/07/23 下午8:33
 */
public class ExceptionClassification {

    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        // 运行时异常
        // int[] arr = {1,2,3};
        // System.out.println(arr.length);
        // System.out.println(arr[10]);
        // int[] arr2 = null;
        // System.out.println(arr2.length);

        // 检查异常
        // 方式1:
        // try {
        //     try {
        //         Class.forName("com.dys.test01.ExceptionTest").newInstance();
        //     } catch (InstantiationException e) {
        //         throw new RuntimeException(e);
        //     } catch (IllegalAccessException e) {
        //         throw new RuntimeException(e);
        //     }
        // } catch (ClassNotFoundException e) {
        //     throw new RuntimeException(e);
        // }

        // 方式2
        // try {
        //     Class.forName("com.dys.test01.ExceptionTest").newInstance();
        // } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
        //     e.printStackTrace();
        // }

        // 方式3：往外抛
        Class.forName("com.dys.test01.ExceptionTest").newInstance();
    }
}
